Skip to main content

Mongo Backups

¿Qué es?

En el contexto de MongoDB, un backup es una copia de la base de datos o de una colección específica que se realiza para proteger la información almacenada.

Backup Completo

Se realiza una copia completa de todas las bases de datos y colecciones en el servidor MongoDB. Esto se puede hacer utilizando herramientas como mongodump, que genera un conjunto de archivos BSON que contienen los datos de la base de datos.

¿Cómo hacerlo?

Primero, necesitaremos las herramientas como mongodump, mongorestore, bsondump, que son herramientas que vienen incluidas cuando instalas MongoDB de manera local. En caso de que no quieras hacer esa instalación, sigue el proceso con Docker; de lo contrario, ve al paso 2.

  1. Docker
# Primero, corre el comando para el contenedor
docker run --name db -itd -v /Users/inmersys/Documents/backups:/app mongo
# Accede a su terminal
docker exec -it db /bin/bash
  1. Exportar de manera binaria, genera un BSON y JSON
# Necesita uri=url -d database -u user -p password --out donde se van a crear
# (En el ejemplo, si estás dentro de Docker, quiero hacerlo en /app, pero si lo tienes instalado, pon la URL de tu carpeta)
mongodump --uri "mongodb+srv://testmongo.41y5ajm.mongodb.net/" -d dev -u luisaux9 -p "dHdoaNsJJsKT" --out /app

Si quieres verificar si los datos se guardaron correctamente, utiliza el comando para ver el BSON que quieras visualizar. También, en caso de que quieras convertir ese BSON a JSON:

# Ver
bsondump rols.bson
# Convertir a un nuevo archivo. Cambia el nombre a 2 porque cuando se hace el mongodump, también genera JSON, así que ten cuidado.
bsondump rols.bson > rols2.json
  1. Importar de manera binaria
# Necesita uri=url -d database -u user -p password --drop se eliminarán las colecciones existentes de destino antes de restaurar los datos --dir donde está la carpeta con los BSON y JSON
mongorestore --uri="mongodb+srv://testmongo.41y5ajm.mongodb.net/" -d dev3 -u luisaux9 -p "dHdoaNsJJsKT" --drop --dir=/app/dev